In order to simplify the process of deploying software, an operating system and one or more applications can be configured and packaged together as a software appliance. A software appliance might be executed directly on the hardware of a host computer. This type of software appliance is commonly referred to as a physical appliance. A software appliance might also be configured to run as a virtual machine on a host computer. This type of software appliance is commonly referred to as a virtual software appliance.
Configuration of software appliances has typically required a user to provide certain configuration settings prior to deploying and executing the software appliance. These configuration settings are referred to herein as “offline” configuration settings. Previous mechanisms for configuring software appliances also require a user to provide other configuration settings after the software appliance has been deployed and execution of the appliance has started. These configuration settings are referred to herein as “online” configuration settings.
Requiring a user to provide configuration settings for a software appliance at two different times during the deployment process results in a sub-optimal user experience. Moreover, previous processes for configuring a software appliance might leave a software appliance in an unknown state if application of the online configuration settings fails for some reason. Troubleshooting this type of problem can be very time consuming and frustrating, especially when many software appliances are being deployed or managed.
It is with respect to these and other considerations that the disclosure made herein is presented.